package com.lg.delay.queue.pojo;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * 消息结构
 *
 * @author by Mr. Li 2020/12/9 16:19
 */
@Data
public class Job implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * Job的唯一标识
     */
    @NotBlank
    private String jobId;

    /**
     * Job类型，可以理解成具体的业务名称
     */
    @NotBlank
    private String topic;

    /**
     * job 需要延迟的事件，单位：秒（服务端会将其转换为绝对时间）
     */
    private Long delay;

    /**
     * job的内容
     */
    @NotBlank
    private String body;

    /**
     * 失败重试次数
     */
    private int retry = 0;

    /**
     * 通知URL
     */
    @NotBlank
    private String url;
}
